package com.group.yqxxb.service;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.group.yqxxb.entity.User;
import com.group.yqxxb.request.UserCard;
import org.springframework.stereotype.Service;

public interface UserService {

    /**
     * 用户注册
     */
    public JSONObject InsertUser (User user) throws Exception;

    /**
     * 用户更新token
     * @param accid
     * @param token
     * @return
     * @throws Exception
     */
    public JSONObject UpdateToken (String accid,String token) throws Exception;

    /**
     * 重置token
     * @param accid
     * @return
     * @throws Exception
     */
    JSONObject RefreshToken(String accid) throws Exception;

    /**
     * 更新用户名片
     * @param userCard
     * @return
     * @throws Exception
     */
    boolean UpdateUinfo(UserCard userCard) throws Exception;

    /**
     * 设置桌面端在线时，移动端是否需要推送
     * @param accid
     * @param donnopOpen true为不推送 false为推送
     * @return
     * @throws Exception
     */
    boolean SetDonnop(String accid,String donnopOpen) throws Exception;

    /**
     * 登录
     * @param accid
     * @return
     * @throws Exception
     */
    String Login(String accid) throws Exception;

    /**
     * 设置或取消账号的全局禁言状态；
     * 账号被设置为全局禁言后，不能发送“点对点”、“群”、“聊天室”消息
     * @param accid
     * @param mute    是否全局禁言：
     * true：全局禁言，false:取消全局禁言
     * @throws Exception
     */
    JSONObject Mute(String accid,Boolean mute) throws Exception;

    /**
     * 获取名片可以批量获取
     * @param accids
     * @return
     * @throws Exception
     */
    JSONArray GetUinfos(JSONArray accids) throws  Exception;


    /**
     * 查询信息
     * @param accid
     * @return
     * @throws Exception
     */
    User SearchInfo(String accid) throws  Exception;
}
